Computer-implemented block diagrams, such as graphical block based diagrams, may be generated with tools, for example, via numerical simulation. Block diagrams may be created, edited, and executed within a computing system. When a change is made to a block diagram, it may be desirable to keep track of why the change was made. Typically, the reason for the change is logged separately from the block diagram, for example, in a word processing document. In addition, the block diagram including the changes may be saved into a new file. In conventional systems, each change to the block diagram may produce a new file.
Saving each change into a new file may result in several files, each holding a different version of the block diagram. Typically, the only interrelation between the different versions of the block diagram may be a file name, which may annotate which version of the block diagram is stored in the particular file. To view differences between the different versions of a block diagram, a user typically needs to open two of the different versions in separate editing windows and visually inspect each version to determine the differences. In some situations, these differences may not be accompanied by an explanation of the reasons for the change or how the changes impact the respective versions. Therefore, the user may need to execute each version of the block diagram to determine the effect of the changes. The user may then compare results of each executed version to determine how a change affects the functionality of the block diagram. This conventional process may be time consuming, cumbersome, and prone to errors, especially with complex models or models having numerous changes.